#ifndef _FEM_VIEWER_APP_H_
#define _FEM_VIEWER_APP_H_

#include "wx/wxprec.h"

#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
//#include "AppImpl.hpp"

namespace FemViewer {

template<typename T> class Core;
namespace WxGUI 	{

class wxMainWindow;


class wxFemViewerApp : public wxApp
{
public:
	static Core<wxFemViewerApp *>* _parent;
	static int  Init  (int argc,char **argv,Core<WxGUI::wxFemViewerApp *> *core);
	static int  Init2 (int argc,char **argv);
	static bool IsInit();
	static wxFemViewerApp * GetInstnace();
	static void ShutDown();
	wxFemViewerApp(void);
	~wxFemViewerApp(void);

	//wxMainWindow& GetWindow(void) { return *m_pWnd; }
	
	bool OnInit();
	int  OnExit();


private:
	/// Private members
	wxMainWindow * m_pWnd;
	/// Block use of these
	DECLARE_NO_COPY_CLASS(wxFemViewerApp);
};


DECLARE_APP(wxFemViewerApp)

}// end namespace WxGUI

typedef WxGUI::wxFemViewerApp AppEngine;

}// end namespace FemViewer

#endif /* _FEM_VIEWER_APP_H_
*/
